Optimal period rate matching for turbo coding

ABSTRACT

Optimal period rate matching for turbo coding. A means is provided herein by which a nearly optimal (e.g., optimal for one block size and sub-optimal for others) periodic puncturing pattern that depends on a mother code. Any desired rate matching can be achieved using the means and approaches presented herein to ensure an appropriate rate of an encoded block output from a turbo encoder so that the subsequently modulated signal generated there from has the appropriate rate. In addition, some embodiments can also employ shifting for another design level available in accordance with puncturing employed to provide for periodic rate matching. Selectivity can also be employed, such that, a first periodic puncturing pattern can be applied at a first time to ensure a first rate, and a second periodic puncturing pattern can be applied at a second time to ensure a second rate.

CROSS REFERENCE TO RELATED PATENTS/PATENT APPLICATIONS ProvisionalPriority Claims

The present U.S. Utility Patent Application claims priority pursuant to35 U.S.C. §119(e) to the following U.S. Provisional Patent Applicationwhich is hereby incorporated herein by reference in its entirety andmade part of the present U.S. Utility Patent Application for allpurposes:

1. U.S. Provisional Application Ser. No. 60/927,264, entitled “Optimalperiod rate matching for turbo coding,” (Attorney Docket No. BP6309),filed May 2, 2007, pending.

BACKGROUND OF THE INVENTION

1. Technical Field of the Invention

The invention relates generally to communication systems; and, moreparticularly, it relates to communication systems employing turbocoding.

2. Description of Related Art

Data communication systems have been under continual development formany years. One such type of communication system that has been ofsignificant interest lately is a communication system that employsiterative error correction codes. Of those, one particular type ofcommunication system that has received interest in recent years has beenone which employs turbo codes (one type of iterative error correctingcode). Communications systems with iterative codes are often able toachieve lower bit error rates (BER) than alternative codes for a givensignal to noise ratio (SNR).

A continual and primary directive in this area of development has beento try continually to lower the SNR required to achieve a given BERwithin a communication system. The ideal goal has been to try to reachShannon's limit in a communication channel. Shannon's limit may beviewed as being the data rate to be used in a communication channel,having a particular SNR, that achieves error free transmission throughthe communication channel. In other words, the Shannon limit is thetheoretical bound for channel capacity for a given modulation and coderate.

The use of turbo codes providing such relatively lower error rates,while operating at relatively low data throughput rates, has largelybeen in the context of communication systems having a large degree ofnoise within the communication channel and where substantially errorfree communication is held at the highest premium. Some of the earliestapplication arenas for turbo coding were space related where accurate(i.e., ideally error free) communication is often deemed an essentialdesign criterion. The direction of development then moved towardsdeveloping terrestrial-applicable and consumer-related applications.Still, based on the heritage of space related application, the focus ofeffort in the turbo coding environment then continued to be achievingrelatively lower error floors, and not specifically towards reachinghigher throughput.

More recently, focus in the art has been towards developing turbocoding, and variants thereof, that are operable to support higheramounts of throughput while still preserving the relatively low errorfloors offered within the turbo code context.

Generally speaking, within the context of communication systems thatemploy turbo codes, there is a first communication device at one end ofa communication channel with encoder capability and second communicationdevice at the other end of the communication channel with decodercapability. In many instances, one or both of these two communicationdevices includes encoder and decoder capability (e.g., within abi-directional communication system).

BRIEF SUMMARY OF THE INVENTION

The present invention is directed to apparatus and methods of operationthat are further described in the following Brief Description of theSeveral Views of the Drawings, the Detailed Description of theInvention, and the claims. Other features and advantages of the presentinvention will become apparent from the following detailed descriptionof the invention made with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 illustrates an embodiment of a communication system.

FIG. 2 illustrates an embodiment of a turbo encoding module.

FIG. 3 illustrates an embodiment of performance comparisons (in terms ofblock error rate (BLER) vs. Eb/No (ratio of energy per bit to spectralnoise density)) of various turbo codes having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.8.

FIG. 4 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.1 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.8.

FIG. 5 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.01 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.8.

FIG. 6 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.002 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.8.

FIG. 7 illustrates an embodiment of performance comparisons (in terms ofBLER vs. Eb/No) on a QPSK (Quadrature Phased Shift Keying) AWGN(Additive White Gaussian Noise) communication channel when performing 6decoding iterations of a coded signal having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.7.

FIG. 8 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.1 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.7.

FIG. 9 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.01 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.7.

FIG. 10 illustrates an embodiment of performance comparisons (in termsof a constant BLER=0.002 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.7.

FIG. 11 illustrates an embodiment of a method for processing a signal.

DETAILED DESCRIPTION OF THE INVENTION

Many communication systems incorporate the use of a turbo code. Thereare many potential applications that can employ turbo codes (includingthose variations and embodiments described herein). Means are presentedherein that can be applied to the 3GPP LTE channel coding to support anarbitrary number of information bits. Some examples of the number ofbits, though not limited thereto, that can be supported using thevarious aspects of the invention presented herein are 40 to 5114 forWCDMA (Wideband Code Division Multiple Access) and HSDPA (High-SpeedDownlink Packet Access) and more for LTE (Long Term Evolution)(referenced also below). Alternatively, other examples of the number ofbits, though not limited thereto, that can be supported using thevarious aspects of the invention presented herein are 40 to 6114 or 40to 8192, or any other desirable number of bits as selected for aparticular application.

Additional information regarding the UTRA-UTRAN Long Term Evolution(LTE) and 3GPP System Architecture Evolution (SAE) can be found at thefollowing Internet web site:

-   -   www.3gpp.org

Turbo coding was suggested for 3GPP LTE channel coding. Within thechannel coding system in 3GPP LTE, there is a need and desire to supplyand provide for a wide range of block sizes (i.e., turbo code blocklengths). For this coding system, the algebraic interleave referred toas the “almost regular permutation (ARP)” in reference [5] wasconsidered as one of the candidates, and “quadratic polynomialpermutation (QPP)” in reference [6] seems to be the one adopted as theactual candidate for 3GPP LTE channel coding.

A very brief description of the QPP interleave is provided here:

Quadratic Polynomial Permutation (QPP)

Additional details regarding the quadratic polynomial permutation (QPP)interleave (π) are presented below.

Let a turbo code block size, or an interleave size of the turbo code beL, then if the following function

π(x)=ƒ₁ x+ƒ ₂ x ² mod(L)

where ƒ₁ and ƒ₂ are non-negative integers, is said to be a QPP over thering permutation on Z_(L)={0,1, . . . ,L−1}, when ƒ(x) permutes {0,1, .. . ,L−1}. This is referred to as a quadratic polynomial as described inreference [6].

Denote the set of prime numbers by P={2,3, . . . }. Denote L=ø_(pεP)p^(n) ^(L,p) . Then a necessary and sufficient condition [5] for ƒ(x) tobe QPP is

1) when n_(L,2)≠1, gcd(ƒ₁,L)=1 and

$f_{2} = {\prod\limits_{p \in P}^{\;}\; p^{\; n_{f_{2},p}}}$

such that n_(ƒ) ₂ _(,p)≧1if n_(L,p)≧1;

2) when n_(L,2)=1 ƒ₁+ƒ₂ is odd,gcd(ƒ₁,N/2)=1 and

$f_{2} = {\prod\limits_{p \in P}^{\;}\; p^{\; n_{f_{2},p}}}$

such that p≠2 and n_(ƒ) ₂ _(,P)≧1if n_(L,p)≧1.

Furthermore, the turbo decoding of this system generally needs to beimplemented using a parallel decoding arrangement because of the veryhigh data throughput and large block size desired for 3GPP LTE channelcoding. The parallel decoding requires the collision-free memoryaccessing (i.e., any one turbo decoder (of a group of parallel arrangedturbo decoders) accesses only memory (of a group of parallel arrangedmemories) at any given time).

The goal of digital communications systems is to transmit digital datafrom one location, or subsystem, to another either error free or with anacceptably low error rate. As shown in FIG. 1, data may be transmittedover a variety of communications channels in a wide variety ofcommunication systems: magnetic media, wired, wireless, fiber, copper,and other types of media as well.

FIG. 1 is a diagram illustrating an embodiment of a communication system100.

Referring to FIG. 1, this embodiment of a communication system 100 is acommunication channel 199 that communicatively couples a communicationdevice 110 (including a transmitter 112 having an encoder 114 andincluding a receiver 116 having a decoder 118) situated at one end ofthe communication channel 199 to another communication device 120(including a transmitter 126 having an encoder 128 and including areceiver 122 having a decoder 124) at the other end of the communicationchannel 199. In some embodiments, either of the communication devices110 and 120 may only include a transmitter or a receiver. There areseveral different types of media by which the communication channel 199may be implemented (e.g., a satellite communication channel 130 usingsatellite dishes 132 and 134, a wireless communication channel 140 usingtowers 142 and 144 and/or local antennae 152 and 154, a wiredcommunication channel 150, and/or a fiber-optic communication channel160 using electrical to optical (E/O) interface 162 and optical toelectrical (O/E) interface 164)). In addition, more than one type ofmedia may be implemented and interfaced together thereby forming thecommunication channel 199.

In a channel coding system with a lower rate mother code, such as 1/3 in3GPP LTE, a rate matching algorithm produces a puncturing or repeatingpattern for a codeword encoded by the mother code. After puncturing orrepetition, the final output matches the rate needed.

Several puncturing approaches for rate matching are proposed in thereferences [1, 2, and 3] for channel coding in 3GPP LTE. Herein, a novelapproach is provided by which puncturing approaches are translated toperiodic puncturing approaches.

With this translation found, it is observed that these turbo codesmentioned above (e.g., in references [1, 2, and 3]) are not designedbased on the turbo code defined in the 3GPP LTE standard, but only onrate and block size. This subsequently causes non-optimal (i.e., lessthan optimal) performance in HARQ (hybrid automatic repeat request).

In this disclosure, a means is provided by which a nearly optimal (e.g.,optimal for one block size and sub-optimal for others) periodicpuncturing pattern that depends on the mother code. In alternativeembodiments, this means can be extended to find the optimal periodicpuncturing pattern for each and every desired block size of a turbocoded signal. In addition, some embodiments can also employ shifting foranother design level available in accordance with puncturing employed toprovide for periodic rate matching.

Periodic Puncturing and its Generalization:

Periodic Puncturing pattern: Consider a rate 1/k mother turbo code thathas L information bits, say, x_(0,0),x_(0,1), . . . ,x_(0,L−1), and(k−1) parity sequences of L bits, say x_(1,0), . . . ,x_(1,L−1),x_(2,0), . . . ,x_(2,L−1), . . . , x_(k−1,0), . . . ,x_(k−1,L−1)respectively. Suppose the puncturing period is q, then a puncturingpattern is a set of k binary vectors of size q, namely

P _(i)=(e _(i,0) ,e _(i,1) , . . . ,e _(i,q−1)),e _(i,j)ε{0,1, i=0, . .. ,k−1,j=0, . . . ,q−1   (EQ-1)

The periodic puncturing based on the above puncturing pattern can bedefined as the k sequences y_(i,0),y_(i,1), . . . y_(i,L−1),i=0, . . . ,k−1, such that

$\begin{matrix}{y_{i,j} = \left\{ {\begin{matrix}x_{i,j} & {{{if}\mspace{14mu} e_{i,{j\; {mod}\; q}}} = 1} \\\delta & {{{if}\mspace{14mu} e_{i,{j\; {mod}\; q}}} = 0}\end{matrix},\mspace{14mu} {i = 0},\ldots \mspace{11mu},{k - 1},{j = 0},\ldots \mspace{11mu},{L - 1}} \right.} & \left( {{EQ}\text{-}2} \right)\end{matrix}$

Then the final output sequences after puncturing are those y_(i,j) suchthat y_(i,j)≠δ.

On top of this, we add k shifting numbers, say s₀, . . . ,s_(k−1). Thepunctured sequence with these shifting positions and the pattern givenin (EQ-1) is as follows:

$\begin{matrix}{y_{i,j} = \left\{ {\begin{matrix}x_{i,j} & {{{if}\mspace{14mu} e_{i,{j\; + {s_{i}{mod}\; q}}}} = 1} \\\delta & {{{if}\mspace{14mu} e_{i,{j + {s_{i}\; {mod}\; q}}}} = 0}\end{matrix},\mspace{14mu} {i = 0},\ldots \mspace{11mu},{k - 1},{j = 0},\ldots \mspace{11mu},{L - 1.}} \right.} & \left( {{EQ}\text{-}3} \right)\end{matrix}$

In the following using the methods provided in references [1, 2, 3] aremodified so that they are applicable to the periodic puncturing.

Example 1 Consider a rate 1/3 mother code (e.g., k=3). Let theinterleaver (π) block size/information block size be 1120. Consider the2 different rate matching algorithms in references [1, 2]. Although inthe definition it is not mentioned that these rate matching method isperiodic, they can be translated to the periodic puncturing pattern.

The notation for the sequences is as follows:

-   -   P₀ (for systematic bits);    -   P₁ (for redundancy/parity/check bits output from 1^(st)        constituent encoder); and    -   P₂ (for redundancy/parity/check bits output from 2^(nd)        constituent encoder).

Release 6 rate matching [1]: The period is 8 and period pattern is

-   -   P₀=(11111111);    -   P₁=(00000001);    -   P₂=(00000001);

with shifting positions 0,3,6.

Circular buffer [2]: The period is 32 and period pattern is

-   -   P₀=(01111111111111110111111111111111);    -   P₁=(00010001000000010000000100000001);    -   P₂=(00010001000000010000000100000001).

For an improvement to this approach, it is suggested to combine thisapproach with the shift method given above with respect to (EQ-3).

Moreover, every sub-sequence x_(i,0), . . . ,x_(i,L−1) i=0,1, . . .,k−1, can have combined periodic patterns. There are at least twopossible ways to combine.

Combining Method 1) Suppose for every i, there are m_(i) differentpatterns, namely P_(i,0), . . . ,P_(i,m) _(i) ⁻¹, with periodsq_(i,l)1=0, . . . ,m_(i)−1, respectively. Divide the whole sequence tom_(i) parts with sizes, L_(i,0), . . . ,L_(i,m) _(i) ⁻¹, such that

${\sum\limits_{l = 0}^{m_{i}}L_{i,l}} = {L.}$

Then the sequence can be represented as follows:

x′_(i,0,0), . . . ,x′_(i,0,L) _(i,0) ⁻¹,x′_(i,1,0), . . . ,x′_(i,1,L)_(i,1) ⁻¹, . . . ,x′_(i,m) _(i) _(−1,0), . . . ,x′_(i,m) _(i) _(−1,L)_(i,m) _(i) ⁻¹ ⁻¹, Such that x′_(i,u,0),x′_(i,u,1), . . . ,x′_(i,u,L)_(i,u) ⁻¹=x_(i,M) _(u) ,x_(i,M) _(u) ₊₁, . . . , x_(i,M) _(u) _(+L)_(i,u) ⁻¹,

where M_(u)=0 if u=0, otherwise

$M_{u} = {\sum\limits_{v = 0}^{u - 1}{L_{i,v}.}}$

Finally, the periodic puncturing pattern, P_(i,u), is used to puncturethe sequence x′_(i,u,0),x′_(i,u,1), . . . ,x′_(i,u,L) _(i,u) ⁻¹.

Example 1 (continue) Release 6 with dithering as in reference [3]:Period and pattern for the information bits sequence are 1 and P₀=(1).There are two patterns for every parity bit sequence.

L _(1,0) =L _(2,0)=4L/7,L _(1,1) =L−L _(1,0) L _(2,1).

-   -   P_(1,0)=P_(2,0)=(000010000100001000001) of period 21; and    -   P_(1,1)=P_(2,1)=(0001000100001) of period 13.

Combining Method 2) Suppose there are m different patterns, namelyP_(i,0), . . . ,P_(i,m−1) with periods q_(i,l)1=0, . . . , m_(i)−1.Different to Combining method 1), using when this approach, puncturingpatterns are alternatively used for all sequences, x_(i,0), . . .,x_(i,L−1). With the given rate r, we can get the percentage ratio fordifferent periods (see part 2 of Section 2 for the calculation for onepossible set of periods). Let the interleaver (π) block size/informationblock size be L. Let us define L_(i,j) to be the size of sub-block thatuses the puncturing pattern P_(i,j). Then

${\sum\limits_{l = 0}^{m_{i}}L_{i,l}} = {L.}$

There can be several methods in accordance with this approach; somevariants therein are depicted below.

Method 2.1) First q_(i,0), bits use pattern P_(i,0), the next q_(i,1)bits use pattern P_(i,1), and so on. When all m_(i) patterns are usedup, start from the first one again. When the size of sub-block puncturedby pattern P_(i,j) is equal to L_(i,j), then skip the puncturing patternP_(i,j) for the next round.

Method 2.2) Suppose all the periods are equal, i.e. q_(i,j)=q,i=0, . . .,k−1,j=0, . . . ,m−1 and L is a multiple of q, i.e., L=q{tilde over(L)}, and moreover, L_(i,j) is also divisible by q, i.e.,L_(i,j)=q{tilde over (L)}_(i,j). Define

${{\overset{\sim}{L}}_{i,j} = {\frac{c_{i,j}}{C_{i}}L}},{j = 0},\ldots \mspace{11mu},{m - 1},{i = 0},\ldots \mspace{11mu},{k - 1},$

with c_(i,j),C_(i) being integers such that

${\sum\limits_{j = 0}^{m - 1}c_{i,j}} = {C_{i}.}$

Let “cont_P” be a counter on the number of period. Now the puncturingmethod can be explained as follows:

-   -   If 0≦cont_p mod C_(i)<c_(i,0), use puncturing pattern P_(i,0)        and    -   If

${{\sum\limits_{v = 0}^{j - 1}c_{i,v}} \leq {{cont\_ p}\; {mod}\; C_{i}} < {\sum\limits_{v = 0}^{j}c_{i,v}}},$

use puncturing pattern P_(i,j) when j>0.

Optimal Periodic Puncturing and Combined Period Puncturing:

Herein, a rate matching method is presented that depends on the optimalperiodic puncturing pattern for a given code and a manageable number ofgiven code rates. For a code rate which is not in the given rate range,several sub-optimal methods based on the optimal pattern of the nearestcode rates in the given range can be provided.

FIG. 2 illustrates an embodiment of a turbo encoding module 200. Thisembodiment of turbo encoding is employed to explain this approach inaccordance with the rate 1/3 turbo code in 3GPP LTE as described inreference [4] (e.g., according to FIG. 2).

Information bits 201, also shown as x_(k), are provided to aninterleaver (π) module 230 (e.g., that may be operable to employ a QPPinterleave (π) as described above) that is operable to generateinterleaved information, x′_(k). Again, the interleave (π) employed bythe interleaver (π) module 230 can be a QPP interleave (π) in someembodiments such as the interleaves (π) used in the QPP interleaves asdescribed in reference [4] and as adopted by 3GPP LTE. Alternatively,other desired interleaves (π) can be employed by the interleaver (π)module 230 without departing from the scope and spirit of the invention.

These information bits 201 are also passed to a first constituentencoder 210 from which both the information bits 201, x_(k), as well ascheck/redundancy/parity 1 bits, z_(k), are output there from.

The interleaved information output from the interleaver (π) module 230is also passed to a second constituent encoder 220 from which both theinterleaved information, x′_(k), as well as check/redundancy/parity 2bits, z′_(k), are output there from.

In the art, the parity bits output from a turbo encoder are sometimesreferred to as check bits, parity bits, and/or redundancy bits.Moreover, the information bits output from a turbo encoder are sometimesreferred to as the information bits (i.e., the very same as was providedto the turbo encoder). In a systematic code context, the informationbits output from a turbo encoder are also sometimes referred to assystematic bits (e.g., in the context of a systematic encoder that, whenencoding information bits, outputs those same information bits as wellas check/redundancy/parity bits). Herein, parity bits is oftentimesemployed for reference to these check/redundancy/parity bits output froma turbo encoder, and information bits is oftentimes employed forreference to these information/systematic bits output from a turboencoder.

Each of the information bots 201, x_(k), the parity 1 bits, z_(k), andthe parity 2 bits, z′_(k), can be provided to a frame segmentationmodule or other means to generate an encoded block. Various othercomponents (e.g., bit combining modules, puncturing modules, etc.) canalso be situated as part of or after such as frame segmentation moduleto assist in the generation of an encoded block that may then be passedto a symbol mapper where the symbols are mapped according to theappropriate modulation (constellation and mapping). These symbol mappedsymbols may then undergo any appropriate modulation as required togenerate a continuous-time signal whose format comports with acommunication channel into which the turbo coded signal is to belaunched.

It is also noted that the turbo encoding, puncturing, shifting and/orother operations (some of which are depicted within FIG. 2) can also beperformed within a processing module, functional blocks, circuitry,hardware, and/or other means within a communication device.

It is also noted that any such communication device as described hereincan also be implemented to store (e.g., such as in an embedded memory ormemory coupled thereto) a plurality of periodic puncturing patterns thatcan includes a first periodic puncturing pattern, a second periodicpuncturing pattern, etc.

For examples, a periodic puncturing pattern such as described herein canbe applied to any one of the systematic bits or information bits 201,x_(k), the check/redundancy/parity 1 bits, z_(k), and thecheck/redundancy/parity 2 bits, z′_(k). As desired in a particularapplication, the periodic puncturing pattern can be implemented to one,all or some sub-combination of these bits to ensure appropriate ratematching.

Single Optimal Period (e.g. for a Particular Selected Interleaver (π)Block Size/Information Block Size):

Since 188 QPP interleaves given in reference [4] are multiple of 8, thisembodiment employs 8 as a puncturing period (e.g., a period of 8, q=8).Since the mother code is a rate 1/3 code (e.g., k=3), there are threesequences, namely,

-   -   x_(0,0), . . . ,x_(0,L−1),    -   x_(1,0), . . . ,x_(1,L−1), and    -   x_(2,0), . . . ,x_(2,L−1).

Initially, the optimal periodic puncturing patterns for rate r=8/D,D=9,10,11, . . . ,23 need to be constructed. The corresponding rates areas follows:

R ₉=8/9,R ₁₀=8/10,R ₁₁=8/11,R ₁₂=8/12=2/3,R ₁₃=8/13, R ₁₄=8/14=4/7,R₁₅=8/15,R ₁₆=8/16=1/2,R ₁₇=8/17, R ₁₈=8/18=4/9,R ₁₉=8/19,R ₂₀=8/20=2/5,R₂₁=8/21, R ₂₂=8/22=4/11,R ₂₃=8/23.   (EQ-4)

Of course, to find an optimal pattern can provide to a very burdensomeand challenging task. One possible approach is to do an exhaustivesearch within a given turbo code. In this way, a periodic puncturingpattern can be generated that is related to the given code, and yet willbe different to those proposed rate matching algorithms as described inreferences [1, 2, 3].

Example 2 Consider rate 1/3 mother turbo code as described in reference[1]. For rate 8/10=0.8 and period 8, it is found that the optimalperiodic puncturing patterns for three bit sequences, x_(0,0), . . .,x_(0,L−1),x_(1,0), . . . ,x_(1,L−1), and x_(2,0), . . . ,x_(2,L−1) areas follows:

-   -   P₀=(11101111),P₁=(01010000),P₂=(00001000).

Oftentimes performance diagrams are described in the context of BLER(Block Error Rate) [or BER (Bit Error Rate)] versus E_(b)/N_(o) (ratioof energy per bit E_(b) to the Spectral Noise Density N_(o)). This termE_(b)/N_(o) is one measure of SNR (Signal to Noise Ratio) for a digitalcommunication system. Generally, a signal is not only one bit, and inthat case, this can be represented alternatively by either E_(s)/N_(o)(ratio of energy per symbol E_(s) to the Spectral Noise Density N_(o))or directly use SNR. When looking at such performance curves, the BLER[or BER] may be determined for any given E_(b)/N_(o) (or SNR) therebyproviding a relatively concise representation of the performance of thedecoding approach.

Other of the following performance diagrams are described in the contextof E_(b)/N_(o) (ratio of energy per bit E_(b) to the Spectral NoiseDensity N_(o)) versus interleaver size (e.g., interleaver (π) blocksize/information block size of the turbo coded signal).

The following FIG. 3 shows a large improvement in performance whencompared to that as disclosed in references [1, 2, 3] for interleaver(π) block size/information block size 1120 with 8 iterations.

FIG. 3 illustrates an embodiment of performance comparisons (in terms ofblock error rate (BLER) vs. Eb/No (ratio of energy per bit to spectralnoise density)) of various turbo codes having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.8.

The following 3 figures (FIG. 4, FIG. 5, and FIG. 6) show theimprovement by using this optimal pattern for all 188 QPP interleavesfor rate 0.8 on block error rate (BLER) of 0.1, 0.01 and 0.002,respectively, using QPSK (Quadrature Phased Shift Keying).

FIG. 4 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.1 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.8.

FIG. 5 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.01 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.8.

FIG. 6 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.002 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.8.

Combining Several Period Patterns:

To have puncturing pattern for a code rate not included in (EQ-4), theperiodic puncturing patterns for the rates in (EQ-4) can nevertheless beused to obtain a sub-optimal periodic puncturing pattern. To find outhow many periods are needed, one can use the following formula.

Suppose the attempted code rate is r, and it is desired to use tprovided optimal puncturing patterns P₀, . . . ,P_(t−1) of rates R_(D) ₀=8/D₀,R_(D) ₁ 8/D₁, . . . ,R_(D) _(t−1) 8/D_(t−1), respectively, in(EQ-4). The percentage of the sub-blocks that use P₀, . . . ,P_(t−1) aredenoted respectively by a₀,a₁, . . . ,a_(t−1) . These numbers shouldsatisfy the following equation

$\begin{matrix}{{\frac{1}{\frac{\sum\limits_{u = 0}^{t - 1}a_{u}}{R_{D_{u}}}} = r}{{{{such}\mspace{14mu} {that}\mspace{14mu} a_{0}} + a_{1} + \ldots + a_{t - 1}} = 1.}} & \left( {{EQ}\text{-}5} \right)\end{matrix}$

Example 3 Consider rate 1/3 mother turbo code as given in reference [1].For code rate r=0.7 and period 8 (q=8), we use optimal the optimalR₁₀=0.8=8/10 puncturing patterns given in example 3, and choose theoptimal R₁₂=8/12=2/3 pattern, which results in the following:

-   -   P_(1,0)=(1111110),P_(1,1)=(0110001),P_(1,2)=(01000001).

Since this example involves the combining of two patterns, then a₁=1−a₀and (EQ-5) becomes as follows:

$\frac{1}{\frac{a_{0}}{R_{10}} + \frac{\left( {1 - a_{0}} \right)}{R_{12}}} = {0.7.}$

Thus, a₀=2/7 and a₁=5/7. By using Combining Method 2.2), the following 3figures (FIG. 7, FIG. 8, and FIG. 9) show the performance gain of thesub-optimal combining method over the other 3 methods compared in thediagram (e.g., as described in references [1, 2, 3]).

A special case is when t=2, i.e., combine 2 patterns among the 15patterns corresponded to the rates in (EQ-4). Before we give the detail,let us define two extreme rates, i.e. rate R₈=8/8=1 (all parity bits arepunctured) and rate R₂₄=1/3=8/24 (no puncturing at all). Let r be anyrate in the range (1,1/3) but not in the (EQ-4). Then there exists anumber u ε{9, . . . ,23,24} such that R_(u−1)<r<R_(u). Compute

$\begin{matrix}{a = {u - \frac{8}{r}}} & \left( {{EQ}\text{-}4} \right)\end{matrix}$

We may find integers c,C such that a=c/C. Let “cont_P” be a counter onthe number of periods and let P_(u−1) be optimal pattern for rateR_(u−1) and P_(u) be the optimal pattern for rate R_(u). The puncturingmethod can then be described as follows.

If cont_p mod C<c, use puncturing pattern P_(u−1), otherwise usepuncturing pattern P_(u)

Example 3.1 Also consider rate r=0.7. Since this rate is between 8/11and 8/12, we combine optimal R₁₁=8/11 puncturing pattern

-   -   P_(0,0)=(101111111),P_(0,1)=(01010001),P_(0,2)=(00000101)    -   And the optimal R₁₂=8/12=2/3 puncturing pattern:    -   P_(1,0)=(11110111),P_(1,1)=(10101000),P_(1,2)=(00001001)

Since u=12, we have

$a = {{u - \frac{8}{r}} = {{12 - {80/7}} = {4/7}}}$

Thus, c=4 and C=7. Then

-   -   If cont_p mod7<4, use puncturing pattern        (P_(0,0),P_(0,1),P_(1,2)), otherwise use puncturing pattern        (P_(1,0),P_(1,1),P_(1,2))

The following FIG. 7 shows the improvement to [1,2] and ditheringalgorithm on QPSK AWGN channel with 6 iterations on size 1120.

FIG. 7 illustrates an embodiment of performance comparisons (in terms ofBLER vs. Eb/No) on a QPSK (Quadrature Phased Shift Keying) AWGN(Additive White Gaussian Noise) communication channel when performing 6decoding iterations of a coded signal having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.7.

As can be seen, the following 3 figures (FIG. 8, FIG. 9, and FIG. 10)show the improvement by using this optimal pattern for all 188 QPPinterleaves for rate 0.7 on block error rate (BLER) of 0.1, 0.01 and0.002, respectively, using QPSK.

FIG. 8 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.1 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.7.

FIG. 9 illustrates an embodiment of performance comparisons (in terms ofa constant BLER=0.01 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.7.

FIG. 10 illustrates an embodiment of performance comparisons (in termsof a constant BLER=0.002 of Eb/No vs. interleave sizes) of various turbocodes having a code rate of 0.8 having an interleaver (π) blocksize/information block size of 1120 and a code rate of 0.7.

When comparing the FIG. 8, FIG. 9, and FIG. 10, it can be seen that thesub-optimal combined pattern of period 8 performs better (or at leastcomparable to) those embodiments depicted in references [1] and [3].

Some Alternative Embodiments

To get an even more optimal performance all of the 188 interleave sizesas employed in the 3GPP LTE channel coding, there are many additionalpossible options, including:

1) Combine more periodic puncturing rate patterns (e.g., more thanmerely 2 as described above in one embodiment);

2) Using Combining Method 2), i.e. using rate 8/10 and rate 8/12 periodalternatively (or alternatively generally depicted as rate 8/D and rate8/(D+2), and the case of rate 8/10 and rate 8/12 period is where D=10);

3) Using a longer period (the lower the code rate, then the longer theperiod that is needed);

4) Search for the optimal periodic puncturing pattern for thecombination of rate 8/D and rate 8/(D+2) (e.g., search not directly forthe optimal periodic puncturing rate pattern for each of two or morecode rates, but for the optimal periodic puncturing rate pattern for thecombination thereof—this could possibly result in an extensive andburdensome search process));

5) Search for the optimal periodic puncturing pattern for the combinedcode rate from the combination of rate 8/D and rate 8/(D+1), for the 0.7rate code (e.g., again search not directly for the optimal periodicpuncturing rate pattern for each of two or more code rates, but for theoptimal periodic puncturing rate pattern for the combination thereof));and

6) Include the combination of many rates, and search for the optimalperiodic puncturing pattern for the resultant combination of them all.Again, this approach could possibly result in an extensive andburdensome search process, but will result in the overall most optimalperiodic puncturing pattern.

Tail Bit Termination:

The turbo encoder adopted by 3GPP LTE channel coding includes 12 extratail bits added after the coded bits.

Therefore, to make the final output code rate as needed, it is thereforenecessary to puncture an additional 12 bits inside the code block (i.e.,to make room for the 12 extra tail bits added after the coded bits). Oneway to do this is to select 12 evenly distributed 12 positions on thenot-yet-punctured positions and then to puncture them. Now that these 12positions are available (i.e., after performing the puncturing of them),the 12 extra tail bits are then put in those just-punctured positionsbefore sending out the encoded block. For example, before passing theencoded block to a symbol mapper where the symbols are mapped accordingto the appropriate modulation (constellation and mapping), these 12extra tail bits are then put in those just-punctured positions. Theencoded block may then be formed into a number of symbols (e.g., anumber of bits grouped together) that undergo symbol mapping, and thesesymbol mapped symbols may then undergo any appropriate modulation asrequired to generate a continuous-time signal whose format comports witha communication channel into which the turbo coded signal is to belaunched.

FIG. 11 illustrates an embodiment of a method 1100 for processing asignal.

The method 1100 begins by encoding information bits in accordance with afirst constituent code thereby generating systematic bits and firstredundancy bits, as shown in a block 1110. The method 1100 continues byinterleaving the information bits in accordance with a quadraticpolynomial permutation (QPP) interleave thereby generating interleavedinformation bits, as shown in a block 1120.

The method 1100 continues by encoding the interleaved information bitsinformation bits in accordance with a second constituent code therebygenerating second redundancy bits, as shown in a block 1130. The method1100 continues by applying a periodic puncturing pattern to at least oneof the systematic bits, the redundancy bits, and the second redundancybits thereby generating an encoded block, as shown in a block 1140. Themethod 1100 continues by modulating the encoded block to generate aturbo coded signal that comports with a communication channel, as shownin a block 1150.

The method 1100 continues by launching the turbo coded signal into thecommunication channel, as shown in a block 1160. It is noted that theperiodic puncturing pattern is operable to modify bits output from themother encoder so that the final coded block has a predetermined ratebefore being launched into the communication channel.

The present invention has been described above with the aid offunctional building blocks illustrating the performance of certainsignificant functions. The boundaries of these functional buildingblocks have been arbitrarily defined for convenience of description.Alternate boundaries could be defined as long as the certain significantfunctions are appropriately performed. Similarly, flow diagram blocksmay also have been arbitrarily defined herein to illustrate certainsignificant functionality. To the extent used, the flow diagram blockboundaries and sequence could have been defined otherwise and stillperform the certain significant functionality. Such alternatedefinitions of both functional building blocks and flow diagram blocksand sequences are thus within the scope and spirit of the claimedinvention.

One of average skill in the art will also recognize that the functionalbuilding blocks, and other illustrative blocks, modules and componentsherein, can be implemented as illustrated or by discrete components,application specific integrated circuits, processors executingappropriate software and the like or any combination thereof.

Moreover, although described in detail for purposes of clarity andunderstanding by way of the aforementioned embodiments, the presentinvention is not limited to such embodiments. It will be obvious to oneof average skill in the art that various changes and modifications maybe practiced within the spirit and scope of the invention, as limitedonly by the scope of the appended claims.

REFERENCES

[1] Technical Specification Group Radio Access Network; Multiplexing andchannel coding (FDD) (Release 6), 3GPP TS 25.212 V6.8.0.

[2] Ericsson, LGE, Motorola, Qualcomm, Samsung and ZTE, “Circular bufferrate matching”, E-mail proposal on reflector:

3GPP_TSG_RAN_WG1@LIST.ETSI.ORG, Apr. 14, 2007.

[3] Nokia Siemens Networks, Nokia, “Description of the DitheringAlgorithm for LTE Rate Matching,” E-mail proposal on reflector:

3GPP_TSG_RAN_WG1@LIST.ETSI.ORG, Apr. 15, 2007.

[4] Technical Specification Group Radio Access Network: Multiplexing andchannel coding (release 8), (Draft) 3GPP TS 36.212 V0.4.2 (2007-02).

[5] C. Berrou, Y. Saouter, C. Douillard, S. Kerouedan, and M. Jezequel,“Designing good permutations for turbo codes: towards a single model,”2004 IEEE International Conference on Communications (ICC), Vol. 1, pp:341-345, 20-24Jun. 2004.

[6] O. Y. Takeshita, “On maximum contention-free interleavers andpermutation polynomials over integer rings,” IEEE Trans. InformationTheory, Vol. 52, No. 3, Mar. 2006.

1. A communication device, comprising: a first constituent encoderimplemented to encode information bits in accordance with a firstconstituent code thereby generating systematic bits and first redundancybits; an interleaver implemented to interleave the information bits inaccordance with a quadratic polynomial permutation (QPP) interleavethereby generating interleaved information bits; a second constituentencoder implemented to encode the interleaved information bitsinformation bits in accordance with a second constituent code therebygenerating second redundancy bits; and wherein: a periodic puncturingpattern is applied to at least one of the systematic bits, theredundancy bits, and the second redundancy bits thereby generating anencoded block; the encoded block undergoes modulation to generate aturbo coded signal that comports with a communication channel; the turbocoded signal is launched into the communication channel; and theperiodic puncturing pattern modifies bits used to generate the encodedblock so that the turbo coded signal generated from the encoded blockhas a predetermined rate before being launched into the communicationchannel.
 2. The communication device of claim 1, wherein: the encodedblock is shifted by at least one bit after the periodic puncturingpattern has been applied thereto and before the encoded block undergoesmodulation.
 3. The communication device of claim 1, wherein: a pluralityof shifting numbers is added to the encoded block after the periodicpuncturing pattern has been applied thereto and before the encoded blockundergoes modulation.
 4. The communication device of claim 1, wherein:the periodic puncturing pattern is a first periodic puncturing pattern;the turbo coded signal is a first turbo coded signal; the predeterminedrate is a first predetermined rate; the communication device isimplemented to store a plurality of periodic puncturing patterns thatincludes the first periodic puncturing pattern; the first periodicpuncturing pattern is operable to modify the encoded block so that thefirst turbo coded signal generated there from has the firstpredetermined rate before being launched into the communication channel;and a second periodic puncturing pattern of the plurality of periodicpuncturing patterns is operable to modify at least one additionalencoded block so that a second turbo coded signal generated there fromhas a second predetermined rate before being launched into thecommunication channel.
 5. The communication device of claim 1, wherein:the systematic bits, the redundancy bits, and the second redundancy bitsare partitioned into a plurality of sequences; a first periodicpuncturing pattern is applied to a first sequence of the plurality ofsequences thereby generating a first punctured sequence; a secondperiodic puncturing pattern is applied to a second sequence of theplurality of sequences thereby generating a second punctured sequence;and the encoded block is formed using the first punctured sequence andthe second punctured sequence.
 6. The communication device of claim 1,wherein: the communication device is a first communication device; thefirst communication device is a coupled to a second communication devicevia the communication channel; the second communication device isoperable to receive the turbo coded signal from the communicationchannel; and the second communication device is operable to select theperiodic puncturing pattern employed within the first communicationdevice.
 7. The communication device of claim 1, wherein: thecommunication device is a first communication device; the firstcommunication device is a coupled to a second communication device viathe communication channel; the second communication device is operableto receive the turbo coded signal from the communication channel; andthe first communication device and the second communication device arecooperatively operable to select the periodic puncturing patternemployed within the first communication device.
 8. The communicationdevice of claim 1, wherein: the communication device is a firstcommunication device; the first communication device is a coupled to asecond communication device via the communication channel; the secondcommunication device is operable to receive the turbo coded signal fromthe communication channel; and the second communication device includesa plurality of turbo decoders implemented to perform parallel decodingprocessing of the turbo coded signal.
 9. The communication device ofclaim 1, wherein: the communication device is a wireless personalcommunication device.
 10. The communication device of claim 1, wherein:the communication device is implemented within at least one of asatellite communication system, a wireless communication system, a wiredcommunication system, and a fiber-optic communication system.
 11. Acommunication device, comprising: a first constituent encoderimplemented to encode information bits in accordance with a firstconstituent code thereby generating systematic bits and first redundancybits; an interleaver implemented to interleave the information bitsthereby generating interleaved information bits; a second constituentencoder implemented to encode the interleaved information bitsinformation bits in accordance with a second constituent code therebygenerating second redundancy bits; and wherein: a first periodicpuncturing pattern is applied to at least one of the systematic bits,the redundancy bits, and the second redundancy bits thereby generating afirst encoded block; the communication device is implemented to store aplurality of periodic puncturing patterns that includes the firstperiodic puncturing pattern; the first encoded block undergoesmodulation to generate a first turbo coded signal that comports with acommunication channel; the first turbo coded signal is launched into thecommunication channel; the first periodic puncturing pattern modifiesbits used to generate the first encoded block so that the first turbocoded signal generated from the first encoded block has a firstpredetermined rate before being launched into the communication channel;and a second periodic puncturing pattern modifies bits used to generatea second encoded block so that the second turbo coded signal generatedfrom the second encoded block has a second predetermined rate beforebeing launched into the communication channel.
 12. The communicationdevice of claim 11, wherein: the interleaver is implemented tointerleave the information bits in accordance with a quadraticpolynomial permutation (QPP) interleave thereby generating theinterleaved information bits.
 13. The communication device of claim 11,wherein: the first encoded block is shifted by at least one bit afterthe periodic puncturing pattern has been applied thereto and before thefirst encoded block undergoes modulation.
 14. The communication deviceof claim 11, wherein: a plurality of shifting numbers is added to thefirst encoded block after the periodic puncturing pattern has beenapplied thereto and before the first encoded block undergoes modulation.15. The communication device of claim 11, wherein: the systematic bits,the redundancy bits, and the second redundancy bits are partitioned intoa plurality of sequences; a first periodic puncturing pattern is appliedto a first sequence of the plurality of sequences thereby generating afirst punctured sequence; a second periodic puncturing pattern isapplied to a second sequence of the plurality of sequences therebygenerating a second punctured sequence; and the first encoded block isformed using the first punctured sequence and the second puncturedsequence.
 16. The communication device of claim 11, wherein: thecommunication device is implemented within at least one of a satellitecommunication system, a wireless communication system, a wiredcommunication system, and a fiber-optic communication system.
 17. Amethod, comprising: encoding information bits in accordance with a firstconstituent code thereby generating systematic bits and first redundancybits; interleaving the information bits in accordance with a quadraticpolynomial permutation (QPP) interleave thereby generating interleavedinformation bits; encoding the interleaved information bits informationbits in accordance with a second constituent code thereby generatingsecond redundancy bits; applying a periodic puncturing pattern to atleast one of the systematic bits, the redundancy bits, and the secondredundancy bits thereby generating an encoded block; modulating theencoded block to generate a turbo coded signal that comports with acommunication channel; and launching the turbo coded signal into thecommunication channel, wherein the periodic puncturing pattern isoperable to modify bits used to generate the encoded block so that theturbo coded signal generated from the encoded block has a predeterminedrate before being launched into the communication channel.
 18. Themethod of claim 17, wherein: the method is performed within a firstcommunication device; the first communication device is a coupled to asecond communication device via the communication channel; the secondcommunication device is operable to receive the turbo coded signal fromthe communication channel; and the second communication device isoperable to select the periodic puncturing pattern employed within thefirst communication device.
 19. The method of claim 17, furthercomprising: shifting the encoded block by at least one bit afterapplying the periodic puncturing pattern thereto and before modulatingthe encoded block.
 20. The method of claim 17, wherein: the method isperformed within a communication device; and the communication device isimplemented within at least one of a satellite communication system, awireless communication system, a wired communication system, and afiber-optic communication system.